package com.wymobilearchitecture.heade_frist.state;

public class Test {
    /**
     * 状态机模式
     * 把糖果机对象的不同状态分离成不同的对象
     * 把原本需要if else 的判断逻辑放在不同的状态对象里面
     * 省去原本的状态判断
     * @param a
     */
    public static void main(String[] a){

        CandyMachine candyMachine = new CandyMachine();
        //执行投币逻辑
        candyMachine.insertQuarter();
        //执行对比逻辑
        candyMachine.ejectQuarter();
        //执行发糖逻辑--所有需要判断状态的逻辑都放到了状态对象里执行,这里就无需关系对象状态了
        candyMachine.dispense();
    }
}
